//package com.woniuxy.microgoldservice.utils;
//
//import java.io.BufferedReader;
//import java.io.DataOutputStream;
//import java.io.InputStreamReader;
//import java.io.UnsupportedEncodingException;
//import java.net.HttpURLConnection;
//import java.net.URL;
//import java.net.URLEncoder;
//import java.security.KeyManagementException;
//import java.security.NoSuchAlgorithmException;
//import java.security.cert.X509Certificate;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
//import javax.net.ssl.HttpsURLConnection;
//import javax.net.ssl.SSLContext;
//import javax.net.ssl.TrustManager;
//import javax.net.ssl.X509TrustManager;
//
//import org.apache.commons.lang.StringUtils;
//import org.apache.http.HttpResponse;
//import org.apache.http.NameValuePair;
//import org.apache.http.client.HttpClient;
//import org.apache.http.client.entity.UrlEncodedFormEntity;
//import org.apache.http.client.methods.HttpDelete;
//import org.apache.http.client.methods.HttpGet;
//import org.apache.http.client.methods.HttpPost;
//import org.apache.http.client.methods.HttpPut;
//import org.apache.http.conn.ClientConnectionManager;
//import org.apache.http.conn.scheme.Scheme;
//import org.apache.http.conn.scheme.SchemeRegistry;
//import org.apache.http.conn.ssl.SSLSocketFactory;
//import org.apache.http.entity.ByteArrayEntity;
//import org.apache.http.entity.StringEntity;
//import org.apache.http.impl.client.DefaultHttpClient;
//import org.apache.http.message.BasicNameValuePair;
//
//import java.util.Map;
//
///**
// * @author hongbin
// * @date 2021-04-07 20:09
// * Description：
// */
//
////public class HttpUtils {
////
////    /**
////     * get
////     *
////     * @param host
////     * @param path
////     * @param method
////     * @param headers
////     * @param querys
////     * @return
////     * @throws Exception
////     */
////    public static HttpResponse doGet(String host, String path, String method,
////                                     Map<String, String> headers,
////                                     Map<String, String> querys)
////            throws Exception {
////        HttpClient httpClient = wrapClient(host);
////
////        HttpGet request = new HttpGet(buildUrl(host, path, querys));
////        for (Map.Entry<String, String> e : headers.entrySet()) {
////            request.addHeader(e.getKey(), e.getValue());
////        }
////
////        return httpClient.execute(request);
////    }
////
////    /**
////     * post form
////     *
////     * @param host
////     * @param path
////     * @param method
////     * @param headers
////     * @param querys
////     * @param bodys
////     * @return
////     * @throws Exception
////     */
////    public static HttpResponse doPost(String host, String path, String method,
////                                      Map<String, String> headers,
////                                      Map<String, String> querys,
////                                      Map<String, String> bodys)
////            throws Exception {
////        HttpClient httpClient = wrapClient(host);
////
////        HttpPost request = new HttpPost(buildUrl(host, path, querys));
////        for (Map.Entry<String, String> e : headers.entrySet()) {
////            request.addHeader(e.getKey(), e.getValue());
////        }
////
////        if (bodys != null) {
////            List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
////
////            for (String key : bodys.keySet()) {
////                nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key)));
////            }
////            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8");
////            formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
////            request.setEntity(formEntity);
////        }
////
////        return httpClient.execute(request);
////    }
////
////    /**
////     * Post String
////     *
////     * @param host
////     * @param path
////     * @param method
////     * @param headers
////     * @param querys
////     * @param body
////     * @return
////     * @throws Exception
////     */
////    public static HttpResponse doPost(String host, String path, String method,
////                                      Map<String, String> headers,
////                                      Map<String, String> querys,
////                                      String body)
////            throws Exception {
////        HttpClient httpClient = wrapClient(host);
////
////        HttpPost request = new HttpPost(buildUrl(host, path, querys));
////        for (Map.Entry<String, String> e : headers.entrySet()) {
////            request.addHeader(e.getKey(), e.getValue());
////        }
////
////        if (StringUtils.isNotBlank(body)) {
////            request.setEntity(new StringEntity(body, "utf-8"));
////        }
////
////        return httpClient.execute(request);
////    }
////
////    /**
////     * Post stream
////     *
////     * @param host
////     * @param path
////     * @param method
////     * @param headers
////     * @param querys
////     * @param body
////     * @return
////     * @throws Exception
////     */
////    public static HttpResponse doPost(String host, String path, String method,
////                                      Map<String, String> headers,
////                                      Map<String, String> querys,
////                                      byte[] body)
////            throws Exception {
////        HttpClient httpClient = wrapClient(host);
////
////        HttpPost request = new HttpPost(buildUrl(host, path, querys));
////        for (Map.Entry<String, String> e : headers.entrySet()) {
////            request.addHeader(e.getKey(), e.getValue());
////        }
////
////        if (body != null) {
////            request.setEntity(new ByteArrayEntity(body));
////        }
////
////        return httpClient.execute(request);
////    }
////
////    /**
////     * Put String
////     * @param host
////     * @param path
////     * @param method
////     * @param headers
////     * @param querys
////     * @param body
////     * @return
////     * @throws Exception
////     */
////    public static HttpResponse doPut(String host, String path, String method,
////                                     Map<String, String> headers,
////                                     Map<String, String> querys,
////                                     String body)
////            throws Exception {
////        HttpClient httpClient = wrapClient(host);
////
////        HttpPut request = new HttpPut(buildUrl(host, path, querys));
////        for (Map.Entry<String, String> e : headers.entrySet()) {
////            request.addHeader(e.getKey(), e.getValue());
////        }
////
////        if (StringUtils.isNotBlank(body)) {
////            request.setEntity(new StringEntity(body, "utf-8"));
////        }
////
////        return httpClient.execute(request);
////    }
////
////    /**
////     * Put stream
////     * @param host
////     * @param path
////     * @param method
////     * @param headers
////     * @param querys
////     * @param body
////     * @return
////     * @throws Exception
////     */
////    public static HttpResponse doPut(String host, String path, String method,
////                                     Map<String, String> headers,
////                                     Map<String, String> querys,
////                                     byte[] body)
////            throws Exception {
////        HttpClient httpClient = wrapClient(host);
////
////        HttpPut request = new HttpPut(buildUrl(host, path, querys));
////        for (Map.Entry<String, String> e : headers.entrySet()) {
////            request.addHeader(e.getKey(), e.getValue());
////        }
////
////        if (body != null) {
////            request.setEntity(new ByteArrayEntity(body));
////        }
////
////        return httpClient.execute(request);
////    }
////
////    /**
////     * Delete
////     *
////     * @param host
////     * @param path
////     * @param method
////     * @param headers
////     * @param querys
////     * @return
////     * @throws Exception
////     */
////    public static HttpResponse doDelete(String host, String path, String method,
////                                        Map<String, String> headers,
////                                        Map<String, String> querys)
////            throws Exception {
////        HttpClient httpClient = wrapClient(host);
////
////        HttpDelete request = new HttpDelete(buildUrl(host, path, querys));
////        for (Map.Entry<String, String> e : headers.entrySet()) {
////            request.addHeader(e.getKey(), e.getValue());
////        }
////
////        return httpClient.execute(request);
////    }
////
////    private static String buildUrl(String host, String path, Map<String, String> querys) throws UnsupportedEncodingException {
////        StringBuilder sbUrl = new StringBuilder();
////        sbUrl.append(host);
////        if (!StringUtils.isBlank(path)) {
////            sbUrl.append(path);
////        }
////        if (null != querys) {
////            StringBuilder sbQuery = new StringBuilder();
////            for (Map.Entry<String, String> query : querys.entrySet()) {
////                if (0 < sbQuery.length()) {
////                    sbQuery.append("&");
////                }
////                if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {
////                    sbQuery.append(query.getValue());
////                }
////                if (!StringUtils.isBlank(query.getKey())) {
////                    sbQuery.append(query.getKey());
////                    if (!StringUtils.isBlank(query.getValue())) {
////                        sbQuery.append("=");
////                        sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));
////                    }
////                }
////            }
////            if (0 < sbQuery.length()) {
////                sbUrl.append("?").append(sbQuery);
////            }
////        }
////
////        return sbUrl.toString();
////    }
////
////    private static HttpClient wrapClient(String host) {
////        HttpClient httpClient = new DefaultHttpClient();
////        if (host.startsWith("https://")) {
////            sslClient(httpClient);
////        }
////
////        return httpClient;
////    }
////
////    private static void sslClient(HttpClient httpClient) {
////        try {
////            SSLContext ctx = SSLContext.getInstance("TLS");
////            X509TrustManager tm = new X509TrustManager() {
////                @Override
////                public X509Certificate[] getAcceptedIssuers() {
////                    return null;
////                }
////                @Override
////                public void checkClientTrusted(X509Certificate[] xcs, String str) {
////
////                }
////                @Override
////                public void checkServerTrusted(X509Certificate[] xcs, String str) {
////
////                }
////            };
////            ctx.init(null, new TrustManager[] { tm }, null);
////            SSLSocketFactory ssf = new SSLSocketFactory(ctx);
////            ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
////            ClientConnectionManager ccm = httpClient.getConnectionManager();
////            SchemeRegistry registry = ccm.getSchemeRegistry();
////            registry.register(new Scheme("https", 443, ssf));
////        } catch (KeyManagementException ex) {
////            throw new RuntimeException(ex);
////        } catch (NoSuchAlgorithmException ex) {
////            throw new RuntimeException(ex);
////        }
////    }
////}
//
//public class HttpUtil {
//    private static String USER_AGENT = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; customie8)";
//
//    // HTTP GET request
//    public static String sendGet(String url, String charset) throws Exception {
//        URL realurl = new URL(url);
//        HttpURLConnection con = (HttpURLConnection) realurl.openConnection();
//
//        // optional default is GET
//        con.setRequestMethod("GET");
//
//        // add request header
//        con.setRequestProperty("User-Agent", USER_AGENT);
//
//        // int responseCode = con.getResponseCode();
//        // System.out.println("Response Code : " + responseCode);
//
//        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
//        String inputLine;
//        StringBuffer result = new StringBuffer();
//        while ((inputLine = in.readLine()) != null) {
//            result.append(inputLine);
//            result.append("\r\n");
//        }
//        in.close();
//        con.disconnect();
//        return result.toString();
//    }
//
//    // HTTP POST request
//    @SuppressWarnings("deprecation")
//    public static String sendPost(String url, Map<String, String> param, String charset) throws Exception {
//        URL realurl = new URL(url);
//        HttpsURLConnection con = (HttpsURLConnection) realurl.openConnection();
//
//        con.setRequestMethod("POST");
//        // add reuqest header
//        con.setRequestProperty("User-Agent", USER_AGENT);
//        // con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
//
//        // String urlParameters =
//        // "sn=C02G8416DRJM&cn=&locale=&caller=&num=12345";
//        StringBuffer buffer = new StringBuffer();
//        if (param != null && !param.isEmpty()) {
//            for (Map.Entry<String, String> entry : param.entrySet()) {
//                buffer.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue(), charset))
//                        .append("&");
//            }
//        }
//        buffer.deleteCharAt(buffer.length() - 1);
//        // Send post request
//        con.setDoOutput(true);
//        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
//        wr.writeBytes(buffer.toString());
//        wr.flush();
//        wr.close();
//        // int responseCode = con.getResponseCode();
//        // System.out.println("Post parameters : " + urlParameters);
//        // System.out.println("Response Code : " + responseCode);
//
//        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), charset));
//        String inputLine;
//        StringBuffer result = new StringBuffer();
//        while ((inputLine = in.readLine()) != null) {
//            result.append(inputLine);
//            result.append("\r\n");
//        }
//        in.close();
//        con.disconnect();
//        return result.toString();
//    }
//}
